ImageView 的 scaleType 属性.md

ImageView 的 scaleType 属性

Android 官方给 ImageView 提供了八种scaleType的属性值,每种都对应了一种展示方式。

八个ScaleType,其实可以分为三个类型:

  1. FIT_开头的 4 种,它们的共同点是都会对图片进行缩放;
  2. CENTER_开头的 3 种,它们的共同点是居中显示,图片的中心点会与ImageView的中心点重叠;
  3. ScaleType.MATRIX

FIT_

  • ScaleType.FIT_CENTER:默认值,图片会被等比缩放到控件上并居中显示。

  • ScaleType.FIT_START:图片等比缩放到控件大小,并放置在控件的左上角展示。

  • ScaleType.FIT_END:图片等比缩放到控件大小,并放置在控件的右下角展示。

  • ScaleType.FIT_XY:图片缩放到控件大小,并完全填充控件大小展示。[ 非等比例缩放 ]

CENTER_

  • ScaleType.CENTER:不使用缩放,图片和 ImageView的中心会重合,并根据 ImageView的大小显示图片
  • ScaleType.CENTER_CROP:图片会被等比缩放直到完全填充整个ImageView,并居中显示。
  • ScaleType.CENTER_INSIDE:此模式的目的是完全展示图片内同为目的,图片将被等比缩放到能够完整展示在ImageView中并居中

MATRIX

  • ScaleType.MATRIX:该模式需要与ImageView.setImageMatrix (Matrix matrix) 配合使用,因为该模式需要用于指定一个变换矩阵用于指定图片如何展示。

  • 示例(注意步骤)

    1
    2
    3
    4
    5
    6
    7
    imageView.setScaleType(ImageView.ScaleType.MATRIX);
    imageView.setScaleType(ImageView.ScaleType.MATRIX); // 设置为矩阵模式

    Matrix matrix = new Matrix(); // 创建一个单位矩阵
    matrix.setTranslate(100, 100); // 平移 x 和y各 100 单位
    matrix.preRotate(30); // 顺时针旋转30度
    imageView.setImageMatrix(matrix); // 设置并应用矩阵
0%